package com.hos.check.common.dao;
import java.io.Serializable;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;

public abstract interface GenericDAO<T, PK extends Serializable> {

	  public abstract PK save(T paramT);

	  public abstract void saveOrUpdate(T paramT);

	  public abstract T load(PK paramPK);

	  public abstract T get(PK paramPK);

	  public abstract void update(T paramT);

	  public abstract void delete(T paramT);

	  public abstract Query getQuery(String paramString);

	  public abstract void delete(PK paramPK);

	  public abstract void delete(T paramT, Session paramSession);

	  public abstract void delete(PK paramPK, Session paramSession);

	  public abstract T load(PK paramPK, Session paramSession);

	  public abstract T get(PK paramPK, Session paramSession);

	  public abstract PK save(T paramT, Session paramSession);

	  public abstract void saveOrUpdate(T paramT, Session paramSession);

	  public abstract void update(T paramT, Session paramSession);

	  public abstract void refresh(T paramT);

	  public abstract Query getQuery(String paramString, Session paramSession);

	  public abstract List<T> findByExample(T paramT, String[] paramArrayOfString);

	  public abstract List<T> findAll();

	  public abstract void flush();

	  public abstract void evict(Object paramObject);

	  public abstract List<T> findByCriteria(Criterion[] paramArrayOfCriterion);

	  public abstract Class<T> getPersistentClass();
}
